2.9 路由层总结(路由分发补充)
• 向下匹配时,URL的前缀会去掉后,再交给下一级做URL匹配,因些下一层就不需要重复定义前缀了
•理论是可以无限套娃(实际项目常用的是2-3层)
路由层总结:
• 两个路由匹配函数:path(),re_path(),区别是他们的第一个参数是否支持正则表达式
• 函数path(),可以使用路径转换器,默认提供5个路径转换器,转换器中定义的参数名需要和视图函数中的位置参数名保持一致
•函数re_path(),存在有名分组和无名分组, 有名分组时参数名需要和视图函数的位置参数名保持一致,无名分组时不需要
•路由冲突,解决办法:
1、在项目中创建多个app,一个app处理一个类型的任务
python manage.py startapp hello
2、路由分发使用include()。
如path(“hello/”,include(“hello.urls))
非常重要,路由匹配时按照urlpatterns中定义的顺序从上往下,只要匹配到一个, 就立即执行对应的视图函数,并把request对象作为第一个位置参数,如果有其他参数,依次传递给视图函数。